/*
  个人中心
*/
const express = require('express')
const path = require('path')
const utility = require('utility')
const router = express.Router()
const db = require(path.join(__dirname, '../common/db.js'))

// 获取用户个人信息接口
router.get('/userinfo', async (req, res) => {
  // 获取token中的用户信息
  let userInfo = req.user
  // 根据用户的id查询用户的详细数据
  let sql = 'select id, username, nickname, email, user_pic from user where id = ?'
  let ret = await db.operateData(sql, userInfo.id)
  if (ret && ret.length > 0) {
    // 获取用户数据成功
    res.json({
      status: 0,
      message: '获取用户数据成功',
      data: ret[0]
    })
  } else {
    res.json({
      status: 1,
      message: '获取用户数据失败'
    })
  }
})

// 重置密码
router.post('/updatepwd', async (req, res) => {
  // 1、获取请求参数
  let id = req.user.id
  let params = req.body
  // 2、对密码进行加密
  params.oldPwd = utility.md5(params.oldPwd)
  params.newPwd = utility.md5(params.newPwd)
  // 3、更新数据库信息（根据原密码更新新密码）
  let sql = 'update user set password = ? where id = ? and password = ?'
  let ret = await db.operateData(sql, [params.newPwd, id, params.oldPwd])
  if (ret && ret.affectedRows > 0) {
    // 更新成功
    res.json({
      status: 0,
      message: '重置密码成功'
    })
  } else {
    // 重置密码失败
    res.json({
      status: 1,
      message: '重置密码失败'
    })
  }
})

// 更新用户的头像
router.post('/update/avatar', async (req, res) => {
  // 1、获取请求参数
  let id = req.user.id
  let avatar = req.body.avatar
  console.log(id, avatar)
  // 2、操作数据库进行更新
  let sql = 'update user set user_pic = ? where id = ?'
  let ret = await db.operateData(sql, [avatar, id])
  // 3、返回操作结果
  if (ret && ret.affectedRows > 0) {
    // 更新成功
    res.json({
      status: 0,
      message: '更新头像成功'
    })
  } else {
    res.json({
      status: 0,
      message: '更新头像失败'
    })
  }
})

// 更新用户信息
router.post('/userinfo', async (req, res) => {
  // 1、获取请求参数
  let params = req.body
  // 2、操作数据库进行更新
  let sql = 'update user set nickname = ?, email = ? where id = ?'
  let ret = await db.operateData(sql, [params.nickname, params.email, params.id])
  // 3、返回操作结果
  if (ret && ret.affectedRows > 0) {
    // 更新成功
    res.json({
      status: 0,
      message: '更新用户信息成功'
    })
  } else {
    res.json({
      status: 0,
      message: '更新用户信息失败'
    })
  }
})

module.exports = router